SMBus 排他制御 I/F

  • SoftFSB は、SMBus にアクセスするプログラムです。他のアプリケーション(M/Bモニタ・温度センサ等)で SMBus にアクセスするプログラムがある場合、アクセスが競合しないように制御しないといけません。

    そこで、SMBusアクセスを排他制御するためのI/Fを実装しています。

    制御方法 :
      Mutex オブジェクトを使用して排他制御を行います。

      SMBus アクセスで排他制御するための Mutex オブジェクト名は "Access_SMBUS.HTP.Method" になります。
      Mutex を使用した制御方法は、API リファレンスをご覧ください。

      基本的に次のAPIを使用すれば良いと思います。
      CreateMutex(); WaitForSingleObject(); ReleaseMutex(); CloseHandle();



    謝辞 :
      Mutex オブジェクトを使用した SMBus排他制御を考案してくださった方々。
      t_knz 殿            MAX1617用 モニターソフト       1617mon
      PENTIUM 666MHz 殿   LM75/LM78 STATUS for Windows  WLMSTAT
      


SoftFSB 外部制御 I/F

  • SoftFSB タスクトレイ常駐時、外部プログラムより SoftFSB を制御できる外部 I/F(共有メモリ)を用意しています。

    他のプロセスが、このオブジェクトにアクセスすることにより、外部プログラムより SoftFSB の機能を使い FSBを変更できるようになります。

    共有メモリ名:$$S$FSB$
    
    メモリ構造  :
        typedef struct tagSOFTFSB {
            char    Mark[12];       // SoftFSB Mark    [RO] : マーク "$$S$FSB$"
            int     Version;        // SoftFSB Version [RO] : SoftFSB Version 3桁の10進数
                                    //                         ( 167 であれば Version 1.6-B7 )
            BOOL    Access;         // Enable/Disable  [RW] : SMBus 状態
                                    //                         1 : Enable  外部制御(アクセス)可能
                                    //                         0 : Disable 外部制御(アクセス)不可能
                                    //                                            (作業中 or 無効)
            char    IcName[64];     // PLL-IC Name     [RO] : 使用中の PLL-IC名
            int     FsbCnt;         // FSB Count       [RO] : FSB数
            DWORD   FsbKin[64];     // FSB/PCI Kind    [RO] : FSB値/PCI値 10進数
                                    //                         上位32ビット : PCI値( 333 であれば 33.3MHz )
                                    //                         下位32ビット : FSB値( 666 であれば 66.6MHz )
            int     CurFSB;         // Current FSB     [RO] : FsbKin[] の何番目のデータを使用しているかの値 0〜
            int     NxtFSB;         // Change  FSB     [RW] : 外部より設定する FsbKin[] の何番目かの番号 0〜
        } SOFTFSB;
    
    サンプル    : 次の場所にサンプルプログラム・ソースがあります。 MapChk16.exe